#pragma once

namespace RoomFW {

//
// Use smart poiner to manage handle.  Construct with a SharedHandleDeleter.
// E.g., SharedHandle handle(::CreateEvent(...), SharedHandleDeleter())
//
typedef ::boost::shared_ptr<void> SharedHandle;

//
// Functor to close a shared handle and report errors.
//
struct SharedHandleDeleter
{
	void operator()(HANDLE handle);
};

}
